package com.xnew.entity.memberArchives;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.xnew.bean.common.FileInfo;
import com.xnew.bean.common.SysOrgUserInfo;
import org.springframework.data.annotation.Transient;

import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
* @Author: Zhozh
* @Description: 实际控制人信息表
* @DateTime: 2022/5/6
* @Params:
* @Return
*/
@TableName("t10_actu_ctrl_info")
public class ActuCtrlInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
    * 实际控股人信息编号
    */
    @TableId("actu_ctrl_info_no")
    private String actuCtrlInfoNo;

    /**
    * 信息审核状态编号
    */
    private String infsubAuditStatusCode;

    /**
    * 机构用户编号
    */
    private String orgUserNo;

    /**
    * 实际控股人类型编号
    */
    private String actuCtrlTypeCode;

    /**
    * 股东类型编号
    */
    private String srhlrTypeCode;

    /**
    * 信息录入时间
    */
    private String infoInputTime;

    /**
    * 实际控股人更新时间
    */
    private String actuCtrlUpdateTime;

    /**
    * 实际控股人名称
    */
    private String actuCtrlName;

    /**
    * 实际控股人持股比例（%）
    */
    private String actuCtrlHdstkRatio;

    /**
    * 实际控股人信息录入人
    */
    private String infoInputPsnNo;

    /**
    * 实际控股人信息更新人
    */
    private String actuCtrlUpdatePsnNo;

    /**
    * 实际控股人详细信息
    */
    private String actuCtrlDetailInfo;

    /**
    * 实际控股人备注
    */
    private String actuCtrlRemark;

    /**
    * 是否是关闭状态（1：是 0：否）
    */
    private String isCloseStatus;


    @TableField(exist = false)
    private List<FileInfo> fileList;

    public List<FileInfo> getFileList() {
        return fileList;
    }

    public void setFileList(List<FileInfo> fileList) {
        this.fileList = fileList;
    }

    @TableField(exist = false)
    private List<AuditLog> auditLogList;

    @TableField(exist = false)
    private List<MemInfoChgHist> histList;

    @TableField(exist = false)
    private SysOrgUserInfo sysOrgUserInfo;

    public SysOrgUserInfo getSysOrgUserInfo() {
        return sysOrgUserInfo;
    }

    public void setSysOrgUserInfo(SysOrgUserInfo sysOrgUserInfo) {
        this.sysOrgUserInfo = sysOrgUserInfo;
    }

    public List<AuditLog> getAuditLogList() {
        return auditLogList;
    }

    public void setAuditLogList(List<AuditLog> auditLogList) {
        this.auditLogList = auditLogList;
    }

    public List<MemInfoChgHist> getHistList() {
        return histList;
    }

    public void setHistList(List<MemInfoChgHist> histList) {
        this.histList = histList;
    }

    public ActuCtrlInfo() {
    }

    public String getActuCtrlInfoNo() {
        return actuCtrlInfoNo;
    }

    public void setActuCtrlInfoNo(String actuCtrlInfoNo) {
        this.actuCtrlInfoNo = actuCtrlInfoNo;
    }

    public String getInfsubAuditStatusCode() {
        return infsubAuditStatusCode;
    }

    public void setInfsubAuditStatusCode(String infsubAuditStatusCode) {
        this.infsubAuditStatusCode = infsubAuditStatusCode;
    }

    public String getOrgUserNo() {
        return orgUserNo;
    }

    public void setOrgUserNo(String orgUserNo) {
        this.orgUserNo = orgUserNo;
    }

    public String getActuCtrlTypeCode() {
        return actuCtrlTypeCode;
    }

    public void setActuCtrlTypeCode(String actuCtrlTypeCode) {
        this.actuCtrlTypeCode = actuCtrlTypeCode;
    }

    public String getSrhlrTypeCode() {
        return srhlrTypeCode;
    }

    public void setSrhlrTypeCode(String srhlrTypeCode) {
        this.srhlrTypeCode = srhlrTypeCode;
    }

    public String getInfoInputTime() {
        return infoInputTime;
    }

    public void setInfoInputTime(String infoInputTime) {
        this.infoInputTime = infoInputTime;
    }

    public String getActuCtrlUpdateTime() {
        return actuCtrlUpdateTime;
    }

    public void setActuCtrlUpdateTime(String actuCtrlUpdateTime) {
        this.actuCtrlUpdateTime = actuCtrlUpdateTime;
    }

    public String getActuCtrlName() {
        return actuCtrlName;
    }

    public void setActuCtrlName(String actuCtrlName) {
        this.actuCtrlName = actuCtrlName;
    }

    public String getActuCtrlHdstkRatio() {
        return actuCtrlHdstkRatio;
    }

    public void setActuCtrlHdstkRatio(String actuCtrlHdstkRatio) {
        this.actuCtrlHdstkRatio = actuCtrlHdstkRatio;
    }

    public String getInfoInputPsnNo() {
        return infoInputPsnNo;
    }

    public void setInfoInputPsnNo(String infoInputPsnNo) {
        this.infoInputPsnNo = infoInputPsnNo;
    }

    public String getActuCtrlUpdatePsnNo() {
        return actuCtrlUpdatePsnNo;
    }

    public void setActuCtrlUpdatePsnNo(String actuCtrlUpdatePsnNo) {
        this.actuCtrlUpdatePsnNo = actuCtrlUpdatePsnNo;
    }

    public String getActuCtrlDetailInfo() {
        return actuCtrlDetailInfo;
    }

    public void setActuCtrlDetailInfo(String actuCtrlDetailInfo) {
        this.actuCtrlDetailInfo = actuCtrlDetailInfo;
    }

    public String getActuCtrlRemark() {
        return actuCtrlRemark;
    }

    public void setActuCtrlRemark(String actuCtrlRemark) {
        this.actuCtrlRemark = actuCtrlRemark;
    }

    public String getIsCloseStatus() {
        return isCloseStatus;
    }

    public void setIsCloseStatus(String isCloseStatus) {
        this.isCloseStatus = isCloseStatus;
    }


    @Transient
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @TableField(exist = false)
    private Map<String, Object> dictNameResult = new HashMap<String, Object>();

    public Map<String, Object> getDictNameResult() {
        return dictNameResult;
    }

    public void setDictNameResult(Map<String, Object> dictNameResult) {
        this.dictNameResult = dictNameResult;
    }

    //数据字典
    @Transient
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public String[] buildIncludeField(){
        return new String[]{"infsubAuditStatusCode","actuCtrlTypeCode","srhlrTypeCode","auditLogList"};
    }

    /*数据字典*/
    @Transient
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public String[] buildIncludeType(){
        return new String[]{"DG0149","DG0237","DG0119","LIST"};
    }
}